home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gawk / gawk213b.zoo / test / re_gen.awk < prev    next >
Text File  |  1991-04-20  |  861b  |  44 lines

  1. # genereate tests for regular expressions
  2. BEGIN {
  3.     FS = "\t"
  4.     awk = "gawk"
  5.     ifile = "inp.tmp"
  6.     aprog = "tmp.awk"
  7.     cmd = sprintf("%s -f %s %s", awk, aprog, ifile)
  8.     print "T.re: tests of regular expression code"
  9. }
  10. NF == 0 {
  11.     next
  12. }
  13. $1 != "" {    # new test
  14.     re = $1
  15. }
  16. $2 != "" {    # either ~ or !~
  17.     op = $2
  18.     if (op == "~")
  19.         neg = "!"
  20.     else if (op == "!~")
  21.         neg = ""
  22. }
  23. $3 != "" {    # new test string
  24.     str = $3
  25. }
  26. $3 == "\"\"" {    # explicit empty line
  27.     $3 = ""
  28. }
  29. NF > 2 {    # generate a test
  30.     input = $3
  31.     print input > ifile
  32. #    print input > "/dev/stderr"
  33.     test = sprintf("%s/%s/ {print \"%d fails %s %s %s\"}",
  34.          neg, re, NR, re, op, input)
  35.     print test > aprog
  36.     close (aprog)
  37.     close (ifile)
  38.     printf(" %3d   %s %s %s:\n", NR, re, op, input)
  39. #    print "test is |" test "|"
  40. #    system("cat " aprog)
  41. #    system("cat " ifile)
  42.     system(cmd)
  43. }
  44.